﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using Biciq.Web.UI.Servicios;
using System.Linq;
using Biciq.Datos;

namespace Biciq.Silverlight.UI
{
    public class EnteroToColorConverter:IValueConverter
    {

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
           
            if (value == null) return string.Empty;

            int numero = (int)value;
           
            var Parametros = CacheCliente.ParametrosSanciones;
            string color = "";
            if (Parametros == null)
            {
                MessageBox.Show("Parametros nulos");
                BiciqDomainContext AdministracionContexto = new BiciqDomainContext();
                AdministracionContexto.Load(AdministracionContexto.GetParametrosSancionesQuery()).Completed += delegate
                {
                    Parametros = AdministracionContexto.ParametrosSanciones.FirstOrDefault();
                   color =DefinirColor(Parametros,numero);
                   
                };
                return color;
            }
            else
            {
                return  DefinirColor(Parametros, numero);
            }
            

               
        }
        /// <summary>
        /// Criterio para definir el color
        /// </summary>
        /// <param name="Parametros"></param>
        /// <param name="numero"></param>
        /// <returns></returns>
        private string DefinirColor(ParametrosSancione Parametros, int numero)
        {
            

            var numeroMinimo = (int)Parametros.MinimoBicicletas;
           
            var numeroMaximo = (int)Parametros.MaximoBiciletas;
            
            var advertencia = (int)Parametros.AdvertenciaBicicletas;
           

            string color = "#FF3982D6";
            if (numero <= numeroMinimo)
            {
                color = "#FFEF3E42";
            }
            else if (numero <= (numeroMinimo + advertencia))
            {
                color = "#FFE7BB74";

            }
            else if (numero > (numeroMinimo + advertencia) && numero < (numeroMaximo - advertencia))
            {
                color = "#FF3982D6";

            }
            else if (numero >= (numeroMaximo - advertencia))
            {

                color = "#FF337D6E";
            }
            else if (numero > numeroMaximo)
            {
                color = "#FFDA4C2F";
            }
            return color;

        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
